<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Digital仿真软件入门 :: 计算机组成原理实验指导</title>
    <link rel="prev" href="introduce-digitalsim.html">
    <link rel="next" href="ds-generate-circuit.html">
    <meta name="generator" content="Antora 3.2.0-alpha.8">
    <link rel="stylesheet" href="../_/css/site.css">
<!--    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> -->
  </head>
  <body class="article">
<header class="header">
  <nav class="navbar">
    <div class="navbar-brand">
      <a class="navbar-item" href="..">计算机组成原理实验指导</a>
      <button class="navbar-burger" aria-controls="topbar-nav" aria-expanded="false" aria-label="Toggle main menu">
        <span></span>
        <span></span>
        <span></span>
      </button>
    </div>
    <div id="topbar-nav" class="navbar-menu">
      <div class="navbar-end">

        <div class="navbar-item">
          <span class="control">
            <a class="button is-primary" href="https://gitee.com/fpga-lab/digisimlab-open" target="_blank">Download</a>
          </span>
        </div>
      </div>
    </div>
  </nav>
</header>
<div class="body">
<div class="nav-container" data-component="digisimlab" data-version="">
  <aside class="nav">
    <div class="panels">
<div class="nav-panel-menu is-active" data-panel="menu">
  <nav class="nav-menu">
    <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
    <h3 class="title"><a href="index.html">计算机组成原理实验指导</a></h3>
<ul class="nav-list">
  <li class="nav-item" data-depth="0">
    <button class="nav-item-toggle"></button>
    <span class="nav-text">Digital仿真软件使用指南</span>
<ul class="nav-list">
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="introduce-digitalsim.html">概述</a>
  </li>
  <li class="nav-item is-current-page" data-depth="1">
    <a class="nav-link" href="ds-getting-started.html">新手入门</a>
  </li>
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="ds-generate-circuit.html">电路生成</a>
  </li>
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="ds-test-circuit.html">电路测试</a>
  </li>
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="ds-sim-dff.html">时序电路仿真</a>
  </li>
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="ds-other-useful.html">几个有用的组件</a>
  </li>
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="ds-hierarchical-design.html">层次化设计</a>
  </li>
  <li class="nav-item" data-depth="1">
    <a class="nav-link" href="ds-parametric-design.html">参数化设计</a>
  </li>
</ul>
  </li>
  <li class="nav-item" data-depth="0">
<ul class="nav-list">
  <li class="nav-item" data-depth="1">
    <button class="nav-item-toggle"></button>
    <span class="nav-text">逻辑电路基础</span>
<ul class="nav-list">
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/bl-multiplexer.html">多路选择器实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/bl-decoder.html">译码器实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/bl-register.html">触发器和寄存器实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/bl-counter.html">计数器实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/dp-register_file.html">寄存器堆实验</a>
  </li>
</ul>
  </li>
  <li class="nav-item" data-depth="1">
    <button class="nav-item-toggle"></button>
    <span class="nav-text">运算器</span>
<ul class="nav-list">
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/op-add_sub_operation.html">加减运算电路实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/op-arithmetic_logic_unit.html">算术逻辑单元实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/op-compare.html">比较运算电路实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/dp-single_cycle_datapath.html">运算器数据通路实验</a>
  </li>
</ul>
  </li>
  <li class="nav-item" data-depth="1">
    <button class="nav-item-toggle"></button>
    <span class="nav-text">存储器</span>
<ul class="nav-list">
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/mem-rom.html">ROM实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/mem-ram.html">RAM实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/mem-path.html">存储器应用实验</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/mem-path-2.html">存储器数据通路实验</a>
  </li>
</ul>
  </li>
</ul>
  </li>
  <li class="nav-item" data-depth="0">
<ul class="nav-list">
  <li class="nav-item" data-depth="1">
    <button class="nav-item-toggle"></button>
    <span class="nav-text">控制器</span>
<ul class="nav-list">
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/cu-overview.html">概述（指令系统）</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/cu-hardwire_controller-1.html">硬布线控制实验（RI）</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/cu-hardwire_controller-3.html">硬布线控制实验（RIM）</a>
  </li>
  <li class="nav-item" data-depth="2">
    <a class="nav-link" href="lab/cu-hardwire_controller.html">硬布线控制实验（RIB）</a>
  </li>
</ul>
  </li>
</ul>
  </li>
</ul>
  </nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
  <div class="context">
    <span class="title">计算机组成原理实验指导</span>
    <span class="version">1.31</span>
  </div>
  <ul class="components">
    <li class="component is-current">
      <div class="title"><a href="index.html">计算机组成原理实验指导</a></div>
      <ul class="versions">
        <li class="version is-current is-latest">
          <a href="index.html">1.31</a>
        </li>
        <li class="version">
          <a href="1.2/index.html">1.2</a>
        </li>
        <li class="version">
          <a href="1.1/index.html">1.1</a>
        </li>
        <li class="version">
          <a href="1.0/index.html">1.0</a>
        </li>
      </ul>
    </li>
  </ul>
</div>
    </div>
  </aside>
</div>
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
  <a href="index.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
  <ul>
    <li><a href="index.html">计算机组成原理实验指导</a></li>
    <li>Digital仿真软件使用指南</li>
    <li><a href="ds-getting-started.html">新手入门</a></li>
  </ul>
</nav>
<div class="page-versions">
  <button class="version-menu-toggle" title="Show other versions of page">1.31</button>
  <div class="version-menu">
    <a class="version is-current" href="ds-getting-started.html">1.31</a>
    <a class="version" href="1.2/ds-getting-started.html">1.2</a>
    <a class="version" href="1.1/ds-getting-started.html">1.1</a>
    <a class="version" href="1.0/ds-getting-started.html">1.0</a>
  </div>
</div>
</div>
  <div class="content">
<aside class="toc sidebar" data-title="页内目录" data-levels="2">
  <div class="toc-menu"></div>
</aside>
<article class="doc">
<h1 class="page">Digital仿真软件入门</h1>
<div class="sect1">
<h2 id="bm-first-steps"><a class="anchor" href="#bm-first-steps"></a>构建电路及仿真</h2>
<div class="sectionbody">
<div class="paragraph">
<p>第一次启动Digital仿真软件时，会自动弹出一个使用指南，引导用户一步步熟悉Digital仿真软件的基本操作。
如果没有自动弹出，可从菜单项「视图 ➤ 使用指南」（View ➤ Start Tutorial）调出。
请跟随使用指南完成所有的操作。</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="注"></i>
</td>
<td class="content">
<a href="introduce-digitalsim.html#help-docu" class="xref page">软件帮助文档</a>的「1.2 起步」（1.2 First Steps）包含了该使用指南的更详细图文。
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>完成该教程后，应能回答下列问题：</p>
</div>
<div class="ulist">
<ul>
<li>
<p>如何放置组件？如何命名组件？</p>
</li>
<li>
<p>如何用导线连接组件？</p>
</li>
<li>
<p>构建电路后，如何启动仿真？如何停止仿真？</p>
</li>
<li>
<p>仿真时导线的亮绿色和深绿色分别表示什么状态？</p>
</li>
</ul>
</div>
<div class="admonitionblock caution">
<table>
<tr>
<td class="icon">
<i class="fa icon-caution" title="注意"></i>
</td>
<td class="content">
必须使导线的端点连接到组件的端口（红点或蓝点），才能将导线与组件相连。
如果一条导线只是中间经过（覆盖）了组件的端口，虽然视觉上与端口相连，但电气上该组件和导线并未连接。
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="bm-settings"><a class="anchor" href="#bm-settings"></a>软件设置</h2>
<div class="sectionbody">
<div class="paragraph">
<p>点击菜单项「编辑 ➤ 设置」（Edit ➤ Settings），设置（Settings）对话框中的常用设置如下。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>使用IEEE 91-1984外观（Use IEEE 91-1984 shapes）</p>
<div class="paragraph">
<p>该选项决定使用哪种逻辑元件的图形符号。软件默认使用IEEE图形符号，如果不勾选则使用IEC 60617-12标准规定的图形符号。
可根据自己的习惯决定使用哪种风格的逻辑门形状。
由于我国推荐性国家标准GB/T 4728.12采用了IEC的标准，故建议不勾选此选项。</p>
</div>
</li>
<li>
<p>语言（Language）</p>
<div class="paragraph">
<p>从下拉列表中选择界面语言，默认Engilsh，可选择简体中文。</p>
</div>
</li>
<li>
<p>应用启动时显示组件树（Component tree view is visible at startup）</p>
<div class="paragraph">
<p>若勾选，则在窗口左边栏显示组件树。该选项在下次软件启动后生效。</p>
</div>
</li>
<li>
<p>显示栅格（Show Grid）</p>
<div class="paragraph">
<p>是否在窗口中显示栅格圆点。</p>
</div>
</li>
<li>
<p>在总线上显示导线数（Show the number of wires on a bus）</p>
<div class="paragraph">
<p>当导线的位宽大于1时，是否在导线上标注位数。</p>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_常用编辑操作"><a class="anchor" href="#_常用编辑操作"></a>常用编辑操作</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Digital仿真软件有两种操作模式：设计模式和仿真模式。在仿真模式下，不能对电路进行编辑修改操作；只有在设计模式下才能进行添加、移动、删除、设置属性等操作。</p>
</div>
<div class="sect2">
<h3 id="_选择"><a class="anchor" href="#_选择"></a>选择</h3>
<div class="paragraph">
<p>如果想要移动或删除已经放置的组件或导线，首先需要选中它们。
鼠标点击组件即可选择该组件。
而如果要选择导线，需要按住Ctrl键的同时点击导线。</p>
</div>
<div class="paragraph">
<p>如果希望选择多个对象，比如组件及其所连接导线，则应使用鼠标框选，即按住鼠标左键同时移动鼠标，将想要选择的对象包含在虚线框中，之后松开鼠标左键。</p>
</div>
</div>
<div class="sect2">
<h3 id="_移动"><a class="anchor" href="#_移动"></a>移动</h3>
<div class="paragraph">
<p>如果是单个组件或一段导线，选中之后移动鼠标即可移动该组件或对象。如果是框选的多个对象，框选之后在虚线框内按住鼠标左键拖动即可移动选中的对象。</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="注"></i>
</td>
<td class="content">
按住鼠标右键并拖动可移动整个电路在窗口中的位置。
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="_删除"><a class="anchor" href="#_删除"></a>删除</h3>
<div class="paragraph">
<p>选中对象后，鼠标点击工具条的删除按钮，或者按下「Delete」键，均可删除选中的对象。</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_数据位宽"><a class="anchor" href="#_数据位宽"></a>数据位宽</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_数据位数属性"><a class="anchor" href="#_数据位数属性"></a>「数据位数」属性</h3>
<div class="paragraph">
<p>每个组件都有一些可以设置的属性，可以通过在组件上点击鼠标右键打开属性窗口。在前面的<a href="#bm-first-steps"><em>构建电路及仿真</em></a>操作中，已经通过属性窗口设置了输入组件和输出组件的标签。
现在右键点击异或门组件，在弹出的属性窗口中将「数据位数」（Data Bits）设置为4位，使异或门能够同时处理4位数据。
然后将连接异或门的两个输入组件和一个输出组件的数据位数均设置为4位，否则仿真时会报错。</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="提示"></i>
</td>
<td class="content">
可以框选多个组件，批量修改多个组件的数据位宽。
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>如果希望在导线上标注位宽，可在<a href="#bm-settings">设置对话框</a>中勾选「在总线上显示导线数」，效果如<a href="#fig-ds-bw">图 1</a>所示。注意，设置后并不能立刻看到效果，要在启动仿真后才会在导线上显示位宽。</p>
</div>
<div id="fig-ds-bw" class="imageblock">
<div class="content">
<img src="_images/ds-bitwadth.png" alt="ds bitwadth">
</div>
<div class="title">图 1. 在导线上显示位宽</div>
</div>
</div>
<div class="sect2">
<h3 id="_多位数据的仿真"><a class="anchor" href="#_多位数据的仿真"></a>多位数据的仿真</h3>
<div class="sect3">
<h4 id="_输入数据"><a class="anchor" href="#_输入数据"></a>输入数据</h4>
<div class="paragraph">
<p>和1位的输入组件不同，仿真时点击多位的输入组件，并不是直接翻转输入值，而是会弹出一个输入窗口，在窗口中输入想要施加在该端口的数值。</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="提示"></i>
</td>
<td class="content">
点击「应用」（Apply）按钮而不是「确定」（OK）按钮，这样就可以同时保持打开多个组件的输入窗口，方便交替输入多组数据。
</td>
</tr>
</table>
</div>
</div>
<div class="sect3">
<h4 id="_数据的显示"><a class="anchor" href="#_数据的显示"></a>数据的显示</h4>
<div class="paragraph">
<p>对于连接多位数据的导线，仿真时并非像1位的导线那样用颜色反映其状态，而是均显示为蓝色，其值显示在导线上。
但如果导线过短则不会显示，此时可将鼠标指向导线也会提示其数值。</p>
</div>
<div class="paragraph">
<p>输入、输出组件的数值显示在该组件的上方。
通过组件「高级设置」中的「数字格式」属性，可以选择数值的显示方式（十进制、带符号十进制、十六进制、二进制等）。</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="bm-show-measure"><a class="anchor" href="#bm-show-measure"></a>仿真结果记录及导出</h2>
<div class="sectionbody">
<div class="paragraph">
<p>仿真状态下点击菜单项「仿真 ➤ 显示测量图」（Simulation ➤ Show measurement graph），然后在打开的测量图窗口中点击菜单「视图 ➤ 显示表格」（View ➤ Show table），打开测试数据表格的记录窗口。之后每当改变输入端口的数据，图表中随之增加一步输入、输出数据的记录，如<a href="#fig-ds-rec">图 2</a>所示。</p>
</div>
<div id="fig-ds-rec" class="imageblock">
<div class="content">
<img src="_images/ds-record.png" alt="ds record">
</div>
<div class="title">图 2. 仿真结果记录</div>
</div>
<div class="paragraph">
<p>当完成需要的验证后，点击图表窗口的菜单项「文件 ➤ 保存数据」（File ➤ Save Data），窗口中记录的数据将被保存为CSV文件。
该文件可通过WPS等办公软件打开，用于实验报告的实验结果分析。</p>
</div>
<div class="admonitionblock caution">
<table>
<tr>
<td class="icon">
<i class="fa icon-caution" title="注意"></i>
</td>
<td class="content">
具有「在测量图中显示」（Show in Measurement Graph）或「作为测量值」（Use as measurement value）属性的组件才可以出现在测量图表中，并且该组件必须有名称（即设置了「标签/Label」属性）。输入、输出组件和<a href="ds-other-useful.html#bm-probe" class="xref page">探测器组件</a>均具有「在测量图中显示」属性，并且默认已勾选。
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_保存电路文件和导出电路图"><a class="anchor" href="#_保存电路文件和导出电路图"></a>保存电路文件和导出电路图</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_添加说明文字"><a class="anchor" href="#_添加说明文字"></a>添加说明文字</h3>
<div class="paragraph">
<p>在保存之前，需要在电路图上添加电路名称和学号、姓名。</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">添加学号、姓名</dt>
<dd>
<p>点击菜单项「组件 ➤ 其他 ➤ Decoration ➤ Text」（Components ➤ Misc. ➤ Decoration ➤ Text），添加一个Text组件，右键点击该组件可以输入一些文本，这里输入自己的学号和姓名，学号、姓名各占一行。</p>
</dd>
<dt class="hdlist1">添加电路名称</dt>
<dd>
<p>点击菜单项「组件 ➤ 其他 ➤ Decoration ➤ 矩形」（Components ➤ Misc. ➤ Decoration ➤ Rectangle），添加一个矩形虚线框，调整矩形框的大小使其将学号、姓名包含其中。右键点击该组件，在「标签」（Label）属性中输入电路名称。</p>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="_保存电路文件"><a class="anchor" href="#_保存电路文件"></a>保存电路文件</h3>
<div class="paragraph">
<p>点击菜单项「文件 ➤ 另存为」（File ➤ Save as）或「文件 ➤ 保存」（File ➤ Save）将电路保存为磁盘文件（文件后缀名为<em>dig</em>），以后可以用Digital仿真软件打开。</p>
</div>
</div>
<div class="sect2">
<h3 id="_导出图片格式的电路图"><a class="anchor" href="#_导出图片格式的电路图"></a>导出图片格式的电路图</h3>
<div class="paragraph">
<p>上面保存的<em>.dig</em>文件只能用Digital仿真软件打开，如果想要在实验报告中插入电路图，可以使用Digital仿真软件的导出功能将电路保存为图片。
点击菜单项「文件 ➤ 导出 ➤ 导出PNG」（File ➤ Export ➤ Export PNG）将电路图保存为PNG图片。</p>
</div>
<div class="admonitionblock important">
<table>
<tr>
<td class="icon">
<i class="fa icon-important" title="重要"></i>
</td>
<td class="content">
实验报告中的电路图应标注导线的位数，如<a href="#fig-ds-bw">图 1</a>所示。即使已经在<a href="#bm-settings">设置对话框</a>中勾选了「在总线上显示导线数」，但在编辑状态下仍有可能未显示导线位数，此时可先启动仿真使电路显示导线位数，随即结束仿真回到编辑状态，此时导线位数仍保留在电路上，之后再导出PNG图。
</td>
</tr>
</table>
</div>
<div class="sidebarblock text-center">
<div class="content">
<div class="title">许可 | License</div>
<div class="paragraph">
<p><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh">CC BY-NC-SA：署名-非商业性使用-相同方式共享 4.0 国际许可协议</a></p>
</div>
<div class="paragraph">
<p>作者：
肖铁军 &lt;<a href="mailto:xiaotiejun@foxmail.com.cn">xiaotiejun@foxmail.com.cn</a>&gt;</p>
</div>
</div>
</div>
</div>
</div>
</div>
<nav class="pagination">
  <span class="prev"><a href="introduce-digitalsim.html">概述</a></span>
  <span class="next"><a href="ds-generate-circuit.html">电路生成</a></span>
</nav>
</article>
  </div>
</main>
</div>
<footer class="footer">
  <p>This page was built using the Antora default UI.</p>
  <p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p>
</footer>
<script id="site-script" src="../_/js/site.js" data-ui-root-path="../_"></script>
<script async src="../_/js/vendor/highlight.js"></script>
  </body>
</html>
